#include <sys/time.h>
#include <stdio.h>
#include <math.h>
#include <stdlib.h>
#include <cuda.h>
#include <cuda_runtime.h>

#define INTERVALOS 3163


//void calcular_tempo(double *tempo_final);


void find_max_min(float *v, int n, float *max, float *min);

void fill_axis(float *v, int  n, float max, float min);


void print_vector(float *v, int t);

void print_matrix(float *v, int t, int c);

char * getResultMatrix(float *v, int t, int c, char *matrix);
char * getExtimatedPoints(float * X, float * Y, int intervalos, float * estimated, char *points);

void print_vector2(int *v, int t);


float calculateDeterminantByGauss(float *matrix, int n);

void  inversa(float * inverse,int n);

void MultiplicaMatrizes(float *m,int L1, int C1, float *n, int L2, int C2, float *p);
 
void calculateColumnMatrixOfCovariances(float * covariancesColumn,
                                        float * dataX,
                                        float * dataY,
                                        int n,
                                        float peX,
                                        float peY,
                                        int nugget_effect,
                                        int reach,
                                        int landing);

float calculateDistance(float x1,float x2, float y1 , float y2);

float calculateSphericalModel(float distance, float reach,
                                              float nuggetEffect, float contribution);

char* getDevProp(char * prop);

void verifyMemoryAllocation(cudaError_t  e, char * place);

